Public and private cloud technologies provide the opportunity for many types of runtime environments. Some environments have a high degree of runtime isolation, and others a lesser degree of isolation. Runtime isolation allows an individual application to be stopped, started, or updated without impacting, or being impacted by, other resources deployed within the environment. Each environment has advantages, for example, a highly isolated environment can have faster peak performance and reduced impact from other workloads on the cloud. However, this advantage comes at the cost of less overall cloud capacity and thus the operating cost of the cloud increases.
Service level agreements (“SLA”) include requirements that dictate the isolation levels of a workload at deployment time. Workloads are collections of various pieces of middleware to support the intended functions of an application. For example, a web workload can be made up of distinct systems to provide Hypertext Transfer Protocol (“HTTP”), database, application server, analytics, etc. While the middleware roles as a whole come together to enable the desired workload function, they each have individual performance characteristics and resource requirements. For example, a database may have a higher dependency on disk performance, while an HTTP server may have a higher dependency on central processing unit (“CPU”) performance. In a cloud environment, physical resource sharing and over commitment can have various degrees of impact on individual workloads, and result in impacts to the ability to maintain end-to-end SLA requirements.